package com.ruoyi.tb.lmt.service;

import com.ruoyi.tb.lmt.domain.TbMaterial;
import com.ruoyi.tb.lmt.domain.vo.TbMaterialVo;
import com.ruoyi.tb.lmt.domain.bo.TbMaterialBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 物资基础资料Service接口
 *
 * @author ruoyi
 * @date 2023-11-30
 */
public interface ITbMaterialService {

    /**
     * 查询物资基础资料
     */
    TbMaterialVo queryById(Long ID);

    /**
     * 查询物资基础资料列表
     */
    TableDataInfo<TbMaterialVo> queryPageList(TbMaterialBo bo, PageQuery pageQuery);

    /**
     * 查询物资基础资料列表
     */
    List<TbMaterialVo> queryList(TbMaterialBo bo);

    /**
     * 新增物资基础资料
     */
    Boolean insertByBo(TbMaterialBo bo);

    /**
     * 修改物资基础资料
     */
    Boolean updateByBo(TbMaterialBo bo);

    /**
     * 校验并批量删除物资基础资料信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    void export(HttpServletRequest request, HttpServletResponse response);

    Map updateExcel(MultipartFile file) throws Exception;

    List<TbMaterialVo> selectBySpecs(String specs);

    TbMaterialBo getByProductCode(String productcode);
}
